import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 写一个hello world,发送get请求.对应笔记Servlet/认识Servlet/创建一个Servlet项目
 */
//创建的代码,需要继承自HttpServlet类,然后才能让这个类被Tomcat给调用到
// 如果刚才Maven的依赖下载的不正确,此时HttpServlet是不正确或者是被标红的.

//需要保证当前的类和一个特定的HTTP请求,能够关联起来
// 当前还不知道,发送一个啥样的请求,才能执行到HelloServlet类的代码
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //一定要把这个代码给注释掉,这调用了父类的deGet,而
        //这个方法里面是直接构造了错误的响应(状态码为405的响应)
        //        super.doGet(req, resp);

        //实现hello world很简单,就不管请求了,都直接返回一个hello world字符串
        resp.getWriter().write("Hello world!");
        // 这个操作,就是往HTTP响应的body中,写了一个"hello world"字符串
    }
    /**
     * doGet是HttpServlet这个父类的方法
     *  这个方法的参数是两个,分别是HttpServletRequest,HttpServletResponse
     *                             http请求              http响应
     *             doGet方法里做的事情就是根据请求,生成响应~
     *
     *  方法重写
     *  咱们此处重写了这个doGet之后,并不需要手动调用doGet,而是由Tomcat自动来调用.
     *     也不需要咱们手动的创建HelloServlet实例,也是有Tomcat自动创建实例的
     */

}
//Servlet里面,代码中没有main方法(main方法在Tomcat中呢)咱们写的代码不是自己手动调用的,而是Tomcat在
//合适的时机,自动调用的像这样的情况~就可以把Servlet理解成是一个"框架"